/*
 	@select2 - v4.0插件扩展
 * */

define(['select2Source'],function(){
	/*
	 	select2重定向
	 * */
	$ = window.j$;
	jQuery = window.j$;
	$.fn.select2Source = $.fn.select2;
	$.fn.select2 = function(){
		if(arguments.length == 0){
			return $(this).select2Source();
		}
		else if(arguments.length == 1){
			return $(this).select2Source(arguments[0]);
		}
		else if(arguments.length == 2){
			return arguments[0] == 'data' ? selectExtend.data(this, arguments[1])
			       : $(this).select2Source(arguments[0], arguments[1]);
		}
		else if(arguments.length == 3){
			return $(this).select2Source(arguments[0], arguments[1], arguments[2]);
		}
	}

	$.fn.select2.amd = $.fn.select2Source.amd;
	/*
	 	扩展方法
	 * */
	var selectExtend = {
		data : function(context, dataArray){
			if(!dataArray && !$.isArray(dataArray)){
				return false;
			}
			var _select = $(context),
				_option,
				_selectedId = [];
			$.each(dataArray, function(i, v) {
				if(!v.id || (v.id+'').trim() == ''){
					return;
				}
				//当前并不存在对应的option
				_option = $('option[value="'+ v.id +'"]', _select);
				if(_option.length == 0){				
					_option = $('<option value="'+ v.id +'">'+v.text+'</option>');
					_select.append(_option);
					_option.data('data', v);
				}
				//当前存在对应的option
				_selectedId.push(v.id)
			});
			_select.val(_selectedId).trigger("change");
			return _select;
		}
	}
});